package com.fuyun.rpc.client.proxy;

import com.fuyun.rpc.common.utils.MockDataUtil;
import lombok.extern.slf4j.Slf4j;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

/**
 * @author: zrq1351
 * @date: 2025/2/14
 */
@Slf4j
public class MockDataGeneratorProxy implements InvocationHandler {
	/**
	 * 当代理对象调用方法时，此方法被调用
	 *
	 * @param proxy  代理对象
	 * @param method 被调用的方法对象
	 * @param args   方法参数
	 * @return 返回模拟数据
	 */
	@Override
	public Object invoke(Object proxy, Method method, Object[] args) {
		Class<?> methodReturnType = method.getReturnType();
		log.info("mock invoke {}", method.getName());
		return MockDataUtil.generate(methodReturnType);
	}

}